The present invention generally relates to video data processing, and more specifically to video data processing for displaying a bitmap over video images.
Home entertainment systems, which combine Personal Computer and television functions (PC/TV systems), are increasingly becoming generic user-interactive multiple-source and multiple-destination communication devices. Such multimedia systems are required to communicate in different data formats between multiple locations for a variety of applications in response to user requests. For example, a PC/TV system may receive data from satellite or terrestrial sources comprising High Definition Television (HDTV) broadcasts, Multi-point Microwave Distribution System (MMDS) broadcasts and Digital Video Broadcasts (DVB). A PC/TV system may also receive and transmit data via telephone (e.g., the Internet) and coaxial lines (e.g., cable TV) as well as from both remote and local sources such as Digital Video Disk (DVD), CDROM, VHS and Digital VHS (DVHS(trademark)) type players, and PCs.
Such a generic PC/TV entertainment system requires a variety of different On Screen Displays (OSDs) for use with video program content from different sources or for different applications. In such systems, the OSD function is used to display bitmap images which overlay the video image on a TV display, for the purpose of conveying information or displaying menus on the TV display. The OSD is rendered on a xe2x80x9cpixmapxe2x80x9d in memory, which is mapped to the TV display. This OSD pixmap needs to be the same size as the active video region on the TV display at any location over the video image.
In some systems, the video raster switches between 2H and 2.14H scanning rate modes based on the channel being watched. The size of the active video region is therefore different in each of the two modes. This requires that a different sized OSD pixmap must be available for each raster mode. For example, in the 2H mode the OSD size requirement is 480 linesxc3x972096 pixels/line and in the 2.14 mode the OSD size requirement is 540 linesxc3x971920 pixels/line. This is because the OSD pixel clock is a function of the video raster clock.
One approach to solving this problem is to keep multiple pixmaps for multiple video images having different raster sizes and to switch to a particular pixmap based on a desired displaying mode. However, one shortcoming of such an approach is that there is a waste of memory space because the approach involves rendering all OSD bitmaps multiple times (once for each pixmap). Another shortcoming of such an approach is that it slows down the system because the pixmap rendering time will be multiplied.
There is, therefore, a need for an improved method and system that use a single pixmap across multiple video rasters having different sizes. The present invention provides a method and system to meet this need.
The present invention provides a method and system that use a single pixmap across multiple video rasters having different raster sizes. In general, the present invention uses at least two headers (e.g., a first header and a second header) to select different portions of a single pixmap to be displayed based on different raster sizes. Each of the two headers points to a single pixmap. In response to different displaying modes, the present invention selectively invokes the first or second header to select a respective portion to be displayed in the pixmap. By doing so, a single pixmap can be used across multiple video rasters having different raster sizes.